package day02;

public class DateTypeCastDemo {
    public static void main(String[] args) {
        //演示两种规则
        //1.整数直接量可以直接赋值给byte,char,short,但是不能超出范围
        //2.byte,char,short型数据参与运算时,先一律自动转换为int再运算
        //a-97 A-65 0-48
        byte a=1;
        byte b=2;
        byte c=(byte)(a+b);

        System.out.println(2+2);//4
        System.out.println('2'+'2');//100,因为字符与字符计算,字符会转换为int类型,2根据码表进行转换,变成50
        System.out.println(2+'2');//52,因为字符与字符计算,字符会转换为int类型,2根据码表进行转换,变成50
        System.out.println('2');//字符2
        int d='a';
        System.out.println(d);//97,查看字符对应的码
        char e=98;
        System.out.println(e);//b,查看码对应的字符


        /*
        int a=5;
        long b=5;//小转大,自动类型转换
        int c=(int)b;//大转小,强制类型转换

        long d=5;//自动类型转换
        double e=5;//自动类型转换

        long f=10000000000L;
        int g=(int)f;//强制类型转换
        System.out.println(g);//1410065408,强转有可能发生溢出

        double h=2.22;
        int i=(int) h;
        System.out.println(i);//2,强转有可能发生精度丢失

        //小类型转大类型,自动类型转换
        //整数转浮点数,只会保留一位小数
        //大类型转小类型,强制类型转换
        //强转可能会发生精度丢失和溢出
        //基本类型,从小到大排序
        //byte<short<char<int<long<false<double

         */
    }
}
